package ms.jasim.framework;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import ms.jacrim.pddl.PddlSolution.Action;
import ms.spm.IAppContext;

public interface IEvaluator {

	EvaluatorResult evaluate(IAppContext context, PddlModel model, Iterable<Action> actions);
	
	EvaluatorResult combine(EvaluatorResult evaluatorResult, EvaluatorResult object);
	
	@Retention(value = RetentionPolicy.RUNTIME)
	@Target(value = {ElementType.TYPE })
	static public @interface Info {
		String Name();
		String Description();
		String[] Components();
	}

	
}
